package com.example.loginpilot_01.mapper;

import com.example.loginpilot_01.entity.Announcement;
import com.example.loginpilot_01.pojo.dto.NoticeQueryDTO;
import com.example.loginpilot_01.pojo.dto.NoticeStatDTO;
//import com.example.loginpilot_01.pojo.entity.Notice;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

// 通知Mapper接口
@Mapper
public interface NoticeMapper {

        //通知列表查询（支持分页和筛选）
        List<Announcement> selectAnnouncementList(NoticeQueryDTO query);

        //统计总数（用于分页）
        //分页时，计算总共有多少条数据，以便分页导航
        Long countAnnouncementList(NoticeQueryDTO query);

        //根据ID查询通知详情
        Announcement selectAnnouncementById(Long id);

        //获取通知阅读统计
        //用于查询通知列表时，展示每个通知的阅读统计信息
        List<NoticeStatDTO> selectNoticeStats(@Param("announcementIds") List<Long> announcementIds);

        //检查用户阅读状态
        //用于查询用户是否已经阅读了某个通知
        Integer checkUserReadStatus(@Param("announcementId") Long announcementId, @Param("userId") Long userId);
}